Perform single task by multiple threads
Course- Java >
If you have to perform single task by many threads, have only one run() method.For example: |
Program of performing single task by multiple threads
- class TestMultitasking1 extends Thread{
- public void run(){
- System.out.println("task one");
- }
- public static void main(String args[]){
- TestMultitasking1 t1=new TestMultitasking1();
- TestMultitasking1 t2=new TestMultitasking1();
- TestMultitasking1 t3=new TestMultitasking1();
- t1.start();
- t2.start();
- t3.start();
- }
- }
Output:task one task one task one
Program of performing single task by multiple threads
- class TestMultitasking2 implements Runnable{
- public void run(){
- System.out.println("task one");
- }
- public static void main(String args[]){
- Thread t1 =new Thread(new TestMultitasking2());//passing annonymous object of TestMultitasking2 class
- Thread t2 =new Thread(new TestMultitasking2());
- t1.start();
- t2.start();
- }
- }
Output:task one task one
Note: Each thread run in a separate callstack.
How to perform multiple tasks by multiple threads (multitasking in multithreading)?
If you have to perform multiple tasks by multiple threads,have multiple run() methods.For example: |
Program of performing two tasks by two threads
- class Simple1 extends Thread{
- public void run(){
- System.out.println("task one");
- }
- }
- class Simple2 extends Thread{
- public void run(){
- System.out.println("task two");
- }
- }
- class TestMultitasking3{
- public static void main(String args[]){
- Simple1 t1=new Simple1();
- Simple2 t2=new Simple2();
- t1.start();
- t2.start();
- }
- }
Output:task one task two
Same example as above by annonymous class that extends Thread class:
Program of performing two tasks by two threads
- class TestMultitasking4{
- public static void main(String args[]){
- Thread t1=new Thread(){
- public void run(){
- System.out.println("task one");
- }
- };
- Thread t2=new Thread(){
- public void run(){
- System.out.println("task two");
- }
- };
- t1.start();
- t2.start();
- }
- }
Output:task one task two
Same example as above by annonymous class that implements Runnable interface:
Program of performing two tasks by two threads
- class TestMultitasking5{
- public static void main(String args[]){
- Runnable r1=new Runnable(){
- public void run(){
- System.out.println("task one");
- }
- };
- Runnable r2=new Runnable(){
- public void run(){
- System.out.println("task two");
- }
- };
- Thread t1=new Thread(r1);
- Thread t2=new Thread(r2);
- t1.start();
- t2.start();
- }
- }
Output:task one task two